
use crate::tree::t_exp::Exp;

#[derive(Debug, Clone)]
pub struct TFn {
    pub name: String,
    pub params: Vec<(String, String)>, // (param_name, param_type)
    pub bbns: Vec<Block>, // bbn, bbn_items
    pub return_type: String,
}


#[derive(Debug, Clone)]
pub struct Block{
    pub bbn_name: String,
    pub bbn_items: Vec<Exp>,
    pub bbn_ty: BlockType,
}

#[derive(Debug, Clone,PartialEq)]
pub enum BlockType {
    If,
    Else,
    IfRet,
    ElseRet,
    Fn,
    FnRet,
}